The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, the approaches described in this section may not be prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Generally speaking, print drivers are processes that process print data generated by an application program and convert the print data into a format supported by a printing device that is intended to process the print data. For example, a user creates an electronic document using a word processing application. The user then selects a print option in the application program to request that the electronic document be printed to a particular printing device. The application program generates and provides print data to a print driver installed on the user's client device. Sometimes this involves the use of an intermediary process referred to as a spooler which saves the print data locally. The print driver processes the print data and generates translated print data that is in a format supported by the particular printing device. For example, the print driver may process the print data and generate translated print data that conforms to the postscript format. The print driver then transmits the translated print data to the particular printing device. The particular printing device processes the translated print data and generates a printed version of the electronic document.
Conventional print drivers are printing device specific. That is, each print driver is designed to translate print data into a format that conforms to a particular format supported by a particular printing device. The device-specific nature of print drivers is the reason for several drawbacks. One issue is that a print driver for each printing device that a user is interested in using must be installed on a user's client device. Print drivers are usually provided on storage media when a printing device is purchased and may also be downloaded over the Internet. When a user travels to a different location the user may not know what printing devices are available to the user or the capabilities of the available printing devices and in many cases does not have the correct driver or access to the Internet to download a correct print driver. Users typically must inquire as to the available printing devices and their capabilities and also must acquire, install and configure the necessary print drivers. These problems can be exacerbated when users are using small portable devices with limited user interfaces because downloading, installing and configuring print drivers can be more difficult with these types of limited devices. Furthermore, users must know how to configure the printing devices once the print drivers are installed. For example, users must generally know the IP address and port of a printing device to configure the print driver. Thus, when users travel to different locations with mobile devices, they often find it difficult to use printing devices at those locations.